import Papa from 'papaparse';

/**
 * 导入csv
 * @param {*} files csv文件
 * @returns
 */
export async function importCsv(files) {
	return new Promise((resolve) => {
		let reader = new FileReader();
		reader.readAsDataURL(files);
		reader.onload = () => {
			// 将csv转换成二维数组
			Papa.parse(files, {
				encoding: 'GB2312',
				complete: (res) => {
					// UTF8 \r\n与\n混用时有可能会出问题
					let data = res.data;
					if (data[data.length - 1] == '') {
						//去除最后的空行
						data.pop();
					}
					resolve(data);
				},
			});
		};
	});
}

/**
 * 导出csv
 * @param {*} files json
 * @param {*} name  导出文件名
 */
export function exportCsv(files, name) {
	let csv = Papa.unparse(files);
	//定义文件内容，类型必须为Blob 否则createObjectURL会报错
	let content = new Blob([csv]);
	//生成url对象
	let urlObject = window.URL || window.webkitURL || window;
	let url = urlObject.createObjectURL(content);
	//生成<a></a>DOM元素
	let el = document.createElement('a');
	//链接赋值
	el.href = url;
	// csv文件名
	el.download = name;
	//必须点击否则不会下载
	el.click();
	//移除链接释放资源
	urlObject.revokeObjectURL(url);
}
